mysql

推荐列表 站点导航

当前位置:首页 > 数据库 > mysql >

详解MYSQL的备份还原(PHP实现)

来源:互联网  作者:网络  发布时间:2020-12-07 17:43
手把手教你实现MYSQL的备份还原 示例代码用我比较熟悉的PHP,当然你看完并理解了其中的思路,相信你也可以快速地...
手把手教你实现MYSQL的备份还原 示例代码用我比较熟悉的PHP,当然你看完并理解了其中的思路,相信你也可以快速地用你熟悉的语言自己写出来。 一、新建dbBackup类,设置默认参数。 , 0, -1)、mb_substr($sql, 0, -3),必须去除最后一个逗号(,) 否则SQL语句出错5.$sql.=";-- <xjx> --\r\n\r\n",详见第四步注   六、备份操作   复制代码 代码如下:     /** * 备份 ... * @param $filename 文件路径 */ function beifen($filename) { $this->db(); //连接数据库   $sql=$this->sqlcreate(); $sql2=$this->sqlinsert();  $data=$sql.$sql2;   return file_put_contents($filename, $data); }     七、还原操作 复制代码 代码如下:     /** * 还原 ... * @param $filename 文件路径 */ function huanyuan($filename) { $this->db(); //连接数据库   //删除数据表 $list=$this->tblist(); $tb=''; foreach ($list as $v) { $tb.="`$v`,"; } $tb=mb_substr($tb, 0, -1); if ($tb) { $rs=mysql_query("DROP TABLE $tb"); if ($rs===false) { return false; } }   //执行SQL $str=file_get_contents($filename); $arr=explode('-- <xjx> --', $str); array_pop($arr);   foreach ($arr as $v) { $rs=mysql_query($v); if ($rs===false) { return false; } }   return true; }     备份示例: 复制代码 代码如下:     $x=new dbBackup(); $x->database='test'; $rs=$x->beifen('db.sql'); var_dump($rs);     还原示例: 复制代码 代码如下:     $x=new dbBackup(); $x->database='test'; $rs=$x->huanyuan('db.sql'); var_dump($rs);     完整代码: 复制代码 代码如下:     class dbBackup { public $host='localhost'; //数据库地址 public $user='root'; //登录名 public $pwd=''; //密码 public $database; //数据库名 public $charset='utf8'; //数据库连接编码:mysql_set_charset   /** * 备份 ... * @param $filename 文件路径 */ function beifen($filename) { $this->db(); //连接数据库   $sql=$this->sqlcreate(); $sql2=$this->sqlinsert();  $data=$sql.$sql2;   return file_put_contents($filename, $data); }   /** * 还原 ... * @param $filename 文件路径 */ function huanyuan($filename) { $this->db(); //连接数据库   //删除数据表 $list=$this->tblist(); $tb=''; foreach ($list as $v) { $tb.="`$v`,"; } $tb=mb_substr($tb, 0, -1); if ($tb) { $rs=mysql_query("DROP TABLE $tb"); if ($rs===false) { return false; } }   //执行SQL $str=file_get_contents($filename); $arr=explode('-- <xjx> --', $str); array_pop($arr);   foreach ($arr as $v) { $rs=mysql_query($v); if ($rs===false) { return false; } }   return true; }   /** * 连接数据库 ... */ function db() {  $con = mysql_connect($this->host,$this->user,$this->pwd); if (!$con){ die('Could not connect'); }   $db_selected = mysql_select_db($this->database, $con); if (!$db_selected) { die('Can\'t use select db'); }   mysql_set_charset($this->charset); //设置编码   return $con; }   /** * 表集合 ... */ function tblist() { $list=array();   $rs=mysql_query("SHOW TABLES FROM $this->database"); while ($temp=mysql_fetch_row($rs)) { $list[]=$temp[0]; }   return $list; }   /** * 表结构SQL ... */ function sqlcreate() { $sql='';   $tb=$this->tblist();  foreach ($tb as $v) { $rs=mysql_query("SHOW CREATE TABLE $v"); $temp=mysql_fetch_row($rs); $sql.="-- 表的结构:{$temp[0]} --\r\n"; $sql.="{$temp[1]}"; $sql.=";-- <xjx> --\r\n\r\n"; } return $sql; }   /** * 数据插入SQL ... */ function sqlinsert() { $sql='';   $tb=$this->tblist();  foreach ($tb as $v) { $rs=mysql_query("SELECT * FROM $v"); if (!mysql_num_rows($rs)) {//无数据返回 continue; }  $sql.="-- 表的数据:$v --\r\n"; $sql.="INSERT INTO `$v` VALUES\r\n";  while ($temp=mysql_fetch_row($rs)) { $sql.='('; foreach ($temp as $v2) { if ($v2===null) { $sql.="NULL,"; } else { $v2=mysql_real_escape_string($v2); $sql.="'$v2',"; }  } $sql=mb_substr($sql, 0, -1); $sql.="),\r\n"; } $sql=mb_substr($sql, 0, -3); $sql.=";-- <xjx> --\r\n\r\n";  }   return $sql; } } //备份 //$x=new dbBackup(); //$x->database='test'; //$rs=$x->beifen('db.sql'); //var_dump($rs); //还原 //$x=new dbBackup(); //$x->database='test'; //$rs=$x->huanyuan('db.sql'); //var_dump($rs);

相关热词: MYSQL php 详解

本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!

本文地址: https://v30.fanwenzhu.com/sql/mysql/1086.shtml

最新文章
 这些文件如果在configure命 这些文件如果在configure命

时间:2021-01-22

说明在数据库崩溃时内存 说明在数据库崩溃时内存

时间:2021-01-22

破解极验(geetest)验证码 破解极验(geetest)验证码

时间:2021-01-22

今天这种代码阅读方法仍 今天这种代码阅读方法仍

时间:2021-01-22

 count(*) as cnt from sakila.fi count(*) as cnt from sakila.fi

时间:2021-01-22

 可能你注意到系统提示的 可能你注意到系统提示的

时间:2021-01-22

搭建环境与运行 搭建环境与运行

时间:2021-01-22

MySQL主从复制的常见拓扑 MySQL主从复制的常见拓扑

时间:2021-01-22

Copyright © www.juheyunku.com      关于 | 合作 | 声明 | 联系 | 更新 | 地图 | Tags

详解MYSQL的备份还原(PHP实现)

2020-12-07 编辑:网络

手把手教你实现MYSQL的备份还原 示例代码用我比较熟悉的PHP,当然你看完并理解了其中的思路,相信你也可以快速地用你熟悉的语言自己写出来。 一、新建dbBackup类,设置默认参数。 , 0, -1)、mb_substr($sql, 0, -3),必须去除最后一个逗号(,) 否则SQL语句出错5.$sql.=";-- <xjx> --\r\n\r\n",详见第四步注   六、备份操作   复制代码 代码如下:     /** * 备份 ... * @param $filename 文件路径 */ function beifen($filename) { $this->db(); //连接数据库   $sql=$this->sqlcreate(); $sql2=$this->sqlinsert();  $data=$sql.$sql2;   return file_put_contents($filename, $data); }     七、还原操作 复制代码 代码如下:     /** * 还原 ... * @param $filename 文件路径 */ function huanyuan($filename) { $this->db(); //连接数据库   //删除数据表 $list=$this->tblist(); $tb=''; foreach ($list as $v) { $tb.="`$v`,"; } $tb=mb_substr($tb, 0, -1); if ($tb) { $rs=mysql_query("DROP TABLE $tb"); if ($rs===false) { return false; } }   //执行SQL $str=file_get_contents($filename); $arr=explode('-- <xjx> --', $str); array_pop($arr);   foreach ($arr as $v) { $rs=mysql_query($v); if ($rs===false) { return false; } }   return true; }     备份示例: 复制代码 代码如下:     $x=new dbBackup(); $x->database='test'; $rs=$x->beifen('db.sql'); var_dump($rs);     还原示例: 复制代码 代码如下:     $x=new dbBackup(); $x->database='test'; $rs=$x->huanyuan('db.sql'); var_dump($rs);     完整代码: 复制代码 代码如下:     class dbBackup { public $host='localhost'; //数据库地址 public $user='root'; //登录名 public $pwd=''; //密码 public $database; //数据库名 public $charset='utf8'; //数据库连接编码:mysql_set_charset   /** * 备份 ... * @param $filename 文件路径 */ function beifen($filename) { $this->db(); //连接数据库   $sql=$this->sqlcreate(); $sql2=$this->sqlinsert();  $data=$sql.$sql2;   return file_put_contents($filename, $data); }   /** * 还原 ... * @param $filename 文件路径 */ function huanyuan($filename) { $this->db(); //连接数据库   //删除数据表 $list=$this->tblist(); $tb=''; foreach ($list as $v) { $tb.="`$v`,"; } $tb=mb_substr($tb, 0, -1); if ($tb) { $rs=mysql_query("DROP TABLE $tb"); if ($rs===false) { return false; } }   //执行SQL $str=file_get_contents($filename); $arr=explode('-- <xjx> --', $str); array_pop($arr);   foreach ($arr as $v) { $rs=mysql_query($v); if ($rs===false) { return false; } }   return true; }   /** * 连接数据库 ... */ function db() {  $con = mysql_connect($this->host,$this->user,$this->pwd); if (!$con){ die('Could not connect'); }   $db_selected = mysql_select_db($this->database, $con); if (!$db_selected) { die('Can\'t use select db'); }   mysql_set_charset($this->charset); //设置编码   return $con; }   /** * 表集合 ... */ function tblist() { $list=array();   $rs=mysql_query("SHOW TABLES FROM $this->database"); while ($temp=mysql_fetch_row($rs)) { $list[]=$temp[0]; }   return $list; }   /** * 表结构SQL ... */ function sqlcreate() { $sql='';   $tb=$this->tblist();  foreach ($tb as $v) { $rs=mysql_query("SHOW CREATE TABLE $v"); $temp=mysql_fetch_row($rs); $sql.="-- 表的结构:{$temp[0]} --\r\n"; $sql.="{$temp[1]}"; $sql.=";-- <xjx> --\r\n\r\n"; } return $sql; }   /** * 数据插入SQL ... */ function sqlinsert() { $sql='';   $tb=$this->tblist();  foreach ($tb as $v) { $rs=mysql_query("SELECT * FROM $v"); if (!mysql_num_rows($rs)) {//无数据返回 continue; }  $sql.="-- 表的数据:$v --\r\n"; $sql.="INSERT INTO `$v` VALUES\r\n";  while ($temp=mysql_fetch_row($rs)) { $sql.='('; foreach ($temp as $v2) { if ($v2===null) { $sql.="NULL,"; } else { $v2=mysql_real_escape_string($v2); $sql.="'$v2',"; }  } $sql=mb_substr($sql, 0, -1); $sql.="),\r\n"; } $sql=mb_substr($sql, 0, -3); $sql.=";-- <xjx> --\r\n\r\n";  }   return $sql; } } //备份 //$x=new dbBackup(); //$x->database='test'; //$rs=$x->beifen('db.sql'); //var_dump($rs); //还原 //$x=new dbBackup(); //$x->database='test'; //$rs=$x->huanyuan('db.sql'); //var_dump($rs);

本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供学习参考!
本文地址为 https://v30.fanwenzhu.com/sql/mysql/1086.shtml

相关文章

风云图片

推荐阅读

返回mysql频道首页